// pages/login_module/creat_account/creat_account.js
// const { bindPhone } = require('../utils/api.js');
// // const { getUserMsg } = require('../utils/api.js');
// const { login } = require('../../../utils/auth.js');
// const { getUserMsg } = require('../../../utils/auth.js');
const request = require('../../utils/request.js');


Page({

  data: {
    checkBoxSelected: false,
    encryptedData: '',
    iv: ''
  },

  checkboxfunc: function () {
    this.setData({
      checkBoxSelected: !this.data.checkBoxSelected
    })
  },

  login: function () {
    if (!this.data.checkBoxSelected) {
      wx.showToast({
        icon: 'none',
        title: '请先同意用户协议'
      });
      return;
    }
  },
  onLoad(){
    // 较验本地登入信息自动登入
    this.isLogin();
  },
  isLogin: function () {
    if (wx.getStorageSync('token')) {
      wx.switchTab({
        url: '/pages/menu/menu',
      })
      return true;
    }
    return false;
  },

  getPhoneNumber: async function (e) {
    // Step 1: 通过 wx.login 获取 code
    wx.login({
      success: res => {
        // 1. 获取到 code
        console.log('code: ' + res.code);
        // return
        const code = res.code;
        
        // Step 2: 通过封装的 request 函数发送 code 给服务器
        request.request('/user/wxlogin', 'POST', {
          code: code // 传入 code 参数
        }).then(response => {
          // 2. 获取到服务器返回的 token
          const token = response.data.token;
          console.log(response);
          console.log('Token: ' + token);

          // Step 3: 将 token 存入本地缓存
          wx.setStorageSync('token', token);
          this.getUserInformation();
          // Step 4: 成功后跳转到 menu 页面
          wx.switchTab({
            url: '/pages/menu/menu',
          });
        }).catch(error => {
          console.error('登录失败:', error);
        });
      },
      fail: err => {
        console.error('wx.login 失败:', err);
      }
    });
  },
  getUserInformation() {
    request.request('/user/get/information', 'GET')
      .then((res) => {
        if (res.code === '200') {
          const userData = res.data;

          // 存储数据到本地
          try {
            wx.setStorageSync('userInfo', userData);
            console.log('用户信息已存储到本地');

            // 更新页面数据
            this.setData({
              userInfo: userData
            });
          } catch (e) {
            console.error('存储用户信息到本地失败', e);
          }
        } else {
          console.error('获取用户信息失败：', res.message);
        }
      })
      .catch((err) => {
        console.error('请求失败：', err);
      });
  },
  /*
    后端调试用.
  */
  getUserInfo(e) {
    wx.login({
      provider: 'weixin',
      success: async function (wxLoginCode) {
        let code = wxLoginCode.code;
        console.log(code);
      }
    });
    console.log(e.detail.encryptedData);
    console.log(e.detail.iv);
    this.setData({
      encryptedData: e.detail.encryptedData,
      iv: e.detail.iv
    })
  },
  gotoContract() {
    wx.navigateTo({
      url: '/subpackages/login-module/pages/contract/contract',
    })
  },
  gotoPrivacy() {
    wx.navigateTo({
      url: '/subpackages/login-module/pages/privacy/privacy',
    })
  },
   // 当用户点击登录按钮时调用
   onGetUserProfile: function () {
    // 调用 wx.getUserProfile 显示授权弹窗
    wx.getUserProfile({
      desc: '用于完善用户资料', // 必填：提示用户授权的用途
      success: (res) => {
        // 获取用户信息成功后
        console.log('用户信息:', res.userInfo);
        this.setData({
          userInfo: res.userInfo
        });

        // 获取用户登录凭证
        wx.login({
          success: (loginRes) => {
            if (loginRes.code) {
              // 调用后台接口，将 code 和用户信息传给后端
              console.log('登录！');
            }
          }
        });
      },
      fail: (err) => {
        // 如果用户拒绝授权
        console.log('用户拒绝授权:', err);
        wx.showToast({
          title: '授权失败',
          icon: 'none'
        });
      }
    });
  }
})